import http from "./http.js"

const utils = {
	/**
	 * 数组对象排序
	 * @param {Object} data
	 * @param {Number} sort  1:正序，-1倒序
	 * @param {String} key
	 */
	doSort(data,sort,key){
		let newData = data.sort((a,b)=>{
			let k1 = key ? a[key] : a;
			let k2 = key ? b[key] : b;
			if(k1 > k2){
				return sort;
			}else if(k1 < k2){
				return sort === 1 ? -1 : 1;
			}else{
				return 0;
			}
		});
		return newData;
	},
	 /**
	 * 文件转Base64
	 * @param file
	 */
	fileToBase64(url) {
		if (!url) return null;
		return new Promise(resolve => {
			uni.request({
				url: url,
				method: 'GET',
				responseType: 'arraybuffer',
				success: res => {
					let type = res.header["content-type"].split("/");
					if(!type || !type[1]) type = ["","png"]
					let base64 = 'data:image/'+type[1]+';base64,'+ uni.arrayBufferToBase64(res.data)
					resolve(base64);
				}
			});
		});
	},
	 /**
	 * 时间格式化
	 * @param date  时间
	 * @param format  格式
	 * @returns {Promise<*>}
	 */
	formatDate(date, format = "yyyy-MM-dd hh:mm:ss") {
		var o = {
			// 月
			"M+": date.getMonth() + 1,
			// 天
			"d+": date.getDate(),
			// 小时
			"h+": date.getHours(),
			// 分钟
			"m+": date.getMinutes(),
			// 秒
			"s+": date.getSeconds(),
			// 季度
			"q+": Math.floor((date.getMonth() + 3) / 3),
			// 毫秒
			S: date.getMilliseconds(),
		};
		if (/(y+)/.test(format))
			format = format.replace(
				RegExp.$1,
				(date.getFullYear() + '').substr(4 - RegExp.$1.length),
			);
		for (let k in o)
			if (new RegExp("(" + k + ")").test(format))
				format = format.replace(
					RegExp.$1,
					RegExp.$1.length == 1
						? o[k]
						: ("00" + o[k]).substr(('' + o[k]).length),
				);
		return format;
	},
	/**
	 * 询问弹框
	 * @param {Object} content
	 */
	showModal(content,title="提示",confirmText="确定",cancelText="取消",showCancel=true){
		let that = this;
		return new Promise((resolve,reject) => {
			uni.showModal({
				title: title,
				showCancel:showCancel,
				cancelText:cancelText,
				confirmText:confirmText,
				content: content,
				success: function (res) {
					if (res.confirm) {
						resolve()
						// console.log('用户点击确定');
					} else if (res.cancel) {
						reject()
						// console.log('用户点击取消');
					}
				}
			});
		})
	},
}
export default utils